using System;
using System.Data.SqlClient;
using DevMaker.SIC.Model.BaseObject;
using log4net;


namespace DevMaker.SIC.Model {
    public class CierreDetalle : IdentifiableObject {
        private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
        public Producto Producto { set; get; }
        public Int64 CantidadEntregada { set; get; }
        public Int64 CantidadVendida { set; get; }
        public Int64 CantidadFisicaEnCaja { set; get; }
        public Int64 PrecioUnitario { set; get; }

        public Boolean Cuadrado {
            get { return (CantidadEntregada - CantidadVendida) == CantidadFisicaEnCaja; }
        }
        public Int64 Diferencia {
            get { return (CantidadEntregada - CantidadVendida - CantidadFisicaEnCaja) * -1; }
        }

        public String DiferenciaSigno {
            get {
                if (Cuadrado)
                    return "";
                if (Diferencia > 0)
                    return "+";
                return "";
            }
        }
        public void ReadFromDataReader(SqlDataReader reader) {
            try {
                Id = Convert.ToInt32(reader["cierre_turnos_detalles_id"]);
                CantidadFisicaEnCaja = Convert.ToInt64(reader["cierre_turnos_detalles_cantidad_real"]);
                CantidadEntregada = Convert.ToInt64(reader["cierre_turnos_detalles_cantidad_entregado"]);
                CantidadVendida = Convert.ToInt64(reader["cierre_turnos_detalles_cantidad_vendida"]);
                PrecioUnitario = Convert.ToInt64(reader["cierre_turnos_detalles_precio_unitario"]);
                Producto = new Producto();
                Producto.ReadFromDataReader(reader);
            } catch (Exception ex) {
                Log.Error(ex);
            }
        }
    }
}